#include "ThreadPool.hpp"
#include "task.hpp"

int main()
{
    srand((unsigned long)time(nullptr) ^ getpid());
    ThreadPool<Task>* tp = new ThreadPool<Task>();
    tp->run();
    //tp->joins(); //等待子线程全部执行完再执行主线程
    //队列为空，没生产任务进去的话就会阻塞
    while(true)
    {
        //生产的过程，制作任务的时候，要花时间
        int x = rand()%100 + 1;
        usleep(7721);
        int y = rand()%30 + 1;
        Task t(x, y, [](int x, int y)->int{
            return x + y;
        });
        std::cout << "制作任务完成: " << x << "+" << y << "=?" << std::endl;
        logMessage(WARNING,"制作任务完成：%d+%d",x,y);
        // 推送任务到线程池中
        tp->push_Task(t);

        sleep(1);
    }
    return 0;
}